Microservices architectures naturally imply a move from vertical to horizontal scaling. This scaling change requires the developer to address three core traits: Consistency, Availability, and Partition Tolerance. This article will introduce the CAP theorem, which seeks to explain the relationship between the three characteristics.